uniapp、vue(app)唤醒第三方应用并传递参数

您所在的位置:网站首页 uniapp 第三方库 default uniapp、vue(app)唤醒第三方应用并传递参数

uniapp、vue(app)唤醒第三方应用并传递参数

2023-07-29 23:59| 来源: 网络整理| 查看: 265

一、市场部分常见app包名

二、判断是否安装了某款app并唤醒(以微信为例)

        注意:Android平台需要通过设置appInf的pname属性(包名)进行查询。 iOS平台需要通过设置appInf的action属性(Scheme)进行查询,在iOS9以后需要添加白名单才可查询,在manifest.json文件plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:[“weixin”])。

        这里使用HTML5的api: plus.runtime.isApplicationExist.(appInf)

// #ifdef APP-PLUS // #endif //条件编译:否则浏览器会报错:plus is not defined //请使用真机查看效果 // #ifdef APP-PLUS const isApp = plus.runtime.isApplicationExist({ pname: 'com.tencent.mm' }); if (isApp) { //已安装 plus.runtime.launchApplication({ pname: "com.tencent.mm", action: "weixin://", }, (e) => { console.log("e", e) }) } else { // 没有安装 console.log('没有安装', '999999999'); } // #endif 三、传递参数(以唤醒微信为例)

(示例):唤醒并且传递参数还是使用 plus.runtime.launchApplication(appInf,err) 函数 其中appInf 对象的extra key 为传递到其他引用参数,传递必须为对象

// #ifdef APP-PLUS // #endif //条件编译:否则浏览器会报错:plus is not defined //请使用真机查看效果 // #ifdef APP-PLUS const isApp = plus.runtime.isApplicationExist({ pname: 'com.tencent.mm' }); let senddata = {"uid":110,"username":"zhangsan","nickname":"张三","email":"[email protected]"} if (isApp) { //已安装 plus.runtime.launchApplication({ pname: "com.tencent.mm", action: "weixin://", extra: senddata //传递的参数 }, (e) => { uni.showToast({ title: "打开失败", icon: "none" }) console.log("e", e) }) } else { // 没有安装 console.log('没有安装', '999999999'); } // #endif 四、接收其他APP传递过来的参数

        1、Android - 2.2+ (支持) :

                如果是第三方APP调用,则把传递过来的参数组合成JSON格式字符串,如“{“name”:“admin”,“password”:“123456”}”; 如果是通过URL Scheme调用则将协议头(前缀)和参数组合成字符串,如“streamapp://name=XiaoMing&password=123456”。

        2、iOS - 4.3+ (支持) : 把第三方传递过来的参数组合成字符串,如“name=admin&password=123456”,建议第三方程序传递JSON格式字符串; 注:由于iOS平台原生传递参数与URL Scheme一致,通过URL Scheme启动应用时也没有协议头数据(前缀)。

//第三方程序调用时传递给程序的参数 plus.runtime.arguments JSON.stringify(plus.runtime.arguments)

 五、温馨提示:

使用plus 开始的方法需要条件编译否则会在h5端出错, 如果在uniapp 里面使用不需要注册对应的事件 在vue 中使用也必须在真机里面使用,所有的plus开始的函数必须要通过window.plus.xxx



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3